package com.heima.service.impl;

import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.heima.common.result.PageResult;
import com.heima.mapper.SkuClassMapper;
import com.heima.pojo.dto.SkuClassDTO;
import com.heima.pojo.entity.SkuClass;
import com.heima.service.SkuClassService;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

/**
 * \* User: chy
 * \* Date: 2025/8/15  19:36
 * \* Description: 商品分类服务实现类
 * \
 */
@Service
@Slf4j
public class SkuClassServiceImpl implements SkuClassService {

    @Autowired
    private SkuClassMapper skuClassMapper;
    /**
     * 商品分类搜索接口
     * @param searchDTO
     * @return
     */
    @Override
    public PageResult<SkuClass> page(SkuClassDTO searchDTO) {
        // 创建分页对象
        Page<SkuClass> page = new Page<>(searchDTO.getPageIndex(), searchDTO.getPageSize());

        // 创建查询条件
        LambdaQueryWrapper<SkuClass> wrapper = new LambdaQueryWrapper<>();

        // 如果传入了分类名称，添加模糊查询条件
        if (StringUtils.isNotBlank(searchDTO.getClassName())) {
            wrapper.like(SkuClass::getClassName, searchDTO.getClassName());
        }

        // 执行分页查询
        Page<SkuClass> resultPage = skuClassMapper.selectPage(page, wrapper);

        // 封装返回结果

        return PageResult.<SkuClass>builder()
                .pageIndex((int) resultPage.getCurrent())
                .pageSize((int) resultPage.getSize())
                .totalCount((int) resultPage.getTotal())
                .totalPage((int) resultPage.getPages())
                .currentPageRecords(resultPage.getRecords())
                .build();
    }

    /**
     * 新增分类
     * @param skuClass
     * @return
     */
    @Override
    public void add(SkuClass skuClass) {

        skuClassMapper.insert(skuClass);
    }
    /**
     * 根据分类id获取分类基本信息
     * @param classId
     * @return
     */
    @Override
    public SkuClass get(String classId) {
        log.info("根据分类id获取分类基本信息{}",classId);
        SkuClass skuClass = skuClassMapper.selectById(classId);
        return skuClass;
    }

    /**
     * 修改分类
     * @param skuClass
     * @return
     */
    @Override
    public void update(SkuClass skuClass) {

        skuClassMapper.updateById(skuClass);
    }

    @Override
    public void delete(String classId) {
        skuClassMapper.deleteById(classId);
    }


}
